/** 
 * @Title: Wrod.java 
 * @Package wordrelationship.imp 
 * @Description: TODO
 * @author HeYan
 * @date 2016年10月19日 上午11:41:57 
 */
package wordrelationship.imp;


/**
 * @ClassName: Wrod
 * @Description: TODO
 * @author HeYan
 * @date 2016年10月19日 上午11:41:57
 * 
 */
public class Word {
	private String word1;
	private String word2;

	public String getWord1() {
		return word1;
	}

	public String getWord2() {
		return word2;
	}

	public Word(String word1, String word2) {
		super();
		this.word1 = word1;
		this.word2 = word2;
	}

	/*
	 * 1.重写equals方法修饰符必须是public,因为是重写的Object的方法. 2.参数类型必须是Object.
	 */
	public boolean equals(Object other) { // 重写equals方法，后面最好重写hashCode方法

		if (this == other) // 先检查是否其自反性，后比较other是否为空。这样效率高
			return true;
		if (other == null)
			return false;
		if (!(other instanceof Word))
			return false;

		final Word word = (Word) other;
		boolean flag1 = getWord1().equals(word.getWord2()) && getWord2().equals(word.getWord1());
		boolean flag2 = getWord1().equals(word.getWord1()) && getWord2().equals(word.getWord2());
		if (!(flag1 || flag2)) {
			return false;
		}
		return true;
	}

	public int hashCode() { // hashCode主要是用来提高hash系统的查询效率。当hashCode中不进行任何操作时，可以直接让其返回
							// 一常数，或者不进行重写。
		int result = getWord1().hashCode();
		result = result + getWord2().hashCode();
		return result;
	}

}
